import request from '@/utils/request'

/**
 * 获取全部用户列表
 * @returns {Promise} 请求结果
 */
export function getUserList() {
  return request({
    url: '/dispatch/dispatch/dispatchChangeShifts/userList',
    method: 'get'
  })
}

/**
 * 获取班次下拉列表
 * @returns {Promise} 请求结果
 */
export function getClassesList() {
  return request({
    url: '/dispatch/dispatch/dispatchChangeShifts/classesList',
    method: 'get'
  })
}

/**
 * 查询交接班记录列表
 * @param {Object} params 查询参数
 * @param {number} params.recordType 记录类型(1-交班记录,2-接班记录)
 * @param {number} [params.shiftId] 班次ID
 * @param {number} [params.status] 交接状态
 * @param {string} [params.handoverTime] 交接日期
 * @param {number} [params.userId] 当前用户ID
 * @returns {Promise} 请求结果
 */
export function listChangeShifts(params) {
  return request({
    url: '/dispatch/dispatch/dispatchChangeShifts/list',
    method: 'get',
    params
  })
}

/**
 * 获取交接班记录详细信息
 * @param {number} changeShiftsId 交接班记录ID
 * @returns {Promise} 请求结果
 */
export function getChangeShiftsDetail(changeShiftsId) {
  return request({
    url: `/dispatch/dispatch/dispatchChangeShifts/${changeShiftsId}`,
    method: 'get'
  })
}

/**
 * 新增交接班记录
 * @param {Object} data 交接班数据
 * @param {string} data.handoverTime 交接时间
 * @param {number} data.shiftId 班次ID
 * @param {number} data.runStatus 运行状态
 * @param {string} data.runRecord 运行记录
 * @param {string} data.kpiRecord 指标记录
 * @returns {Promise} 请求结果
 */
export function addChangeShifts(data) {
  return request({
    url: '/dispatch/dispatch/dispatchChangeShifts',
    method: 'post',
    data
  })
}

/**
 * 确认接班记录
 * @param {number} changeShiftsId 交接班记录ID
 * @returns {Promise} 极速
 */
export function confirmChangeShifts(changeShiftsId) {
  return request({
    url: `/dispatch/dispatch/dispatchChangeShifts/confirm/${changeShiftsId}`,
    method: 'put'
  })
}

/**
 * 删除交接班记录
 * @param {Array<number>} changeShiftsIds 交接班记录ID数组
 * @returns {Promise} 请求结果
 */
export function deleteChangeShifts(changeShiftsIds) {
  return request({
    url: `/dispatch/dispatch/dispatchChangeShifts/${changeShiftsIds}`,
    method: 'delete'
  })
}